home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Auge 4000 / Auge 4000 #15 (1988-01-22)(Amiga User Gruppe Einzugsgebiet 4000).zip / Auge 4000 #15 (1988-01-22)(Amiga User Gruppe Einzugsgebiet 4000).adf / WBLander / Source / timer.c < prev   
C/C++ Source or Header  |  1987-12-02  |  758b  |  45 lines

  1. #include "exec/devices.h"
  2. #include "devices/timer.h"
  3.  
  4. struct timerequest *timermsg;
  5.  
  6. struct timerequest *
  7. CreateTimer(unit)
  8. ULONG unit;
  9. {
  10.     int error;
  11.  
  12.     struct MsgPort *timerport;
  13.     struct timerequest *timermsg;
  14.  
  15.     timerport = CreatePort(0, 0);
  16.     if(!timerport)
  17.         return 0;
  18.     timermsg = (struct timerequest *)
  19.         CreateExtIO(timerport, sizeof(struct timerequest));
  20.     if(!timermsg) {
  21.         DeletePort(timerport);
  22.         return 0;
  23.     }
  24.     error = OpenDevice(TIMERNAME, unit, timermsg, 0);
  25.     if(error) {
  26.         DeleteTimer(timermsg);
  27.         return 0;
  28.     }
  29.     return timermsg;
  30. }
  31.  
  32. DeleteTimer(tr)
  33. struct timerequest *tr;
  34. {
  35.     struct MsgPort *tp;
  36.  
  37.     if(tr) {
  38.         tp = tr->tr_node.io_Message.mn_ReplyPort;
  39.         if(tp)
  40.             DeletePort(tp);
  41.         CloseDevice(tr);
  42.         DeleteExtIO(tr, sizeof(struct timerequest));
  43.     }
  44. }
  45.